// koa 入口文件
// 构造函数
const Koa = require('koa2')

// 引入
const cors = require('koa2-cors')
const path = require('path')
const static = require('koa-static')

// websock处理
const { createWss } = require("./utils/websock/index.js");
const { initWebsocket } = require("./utils/websock/ws.js");

// 声明一个实例
const app = new Koa()

// 端口号
const port = 5000

const router = require('./router/index')

// 静态路径 只允许访问这个路径下的 路径直接访问即可，不用加 assets 
// 例如 http://localhost:5000/images/图1.jpg
// 获取静态资源文件夹
app.use(static(path.join(__dirname + '/assets')))

// 这里cors中间件一定要写在路由之前
app.use(cors())

/**
 * router.routes() 的作用是:  启动路由
 * router.allowedMethods()的作用是:  允许任何需求(get, post, put...)
 * */
app.use(router.routes(), router.allowedMethods())

// ip + port 
let server = app.listen(port, () => {
  console.log(`server is running at http://localhost:${port}`)
})

// websocket 初始化
const wss = createWss(server);
initWebsocket(wss);
